home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 2 / CU Amiga Magazine's Super CD-ROM 02 (1996)(EMAP Images)(GB)[!][issue 1996-04].iso / magazine / amiga_e / amigae.july.archive / 000021_crash!mars.let.uva.nl!wouter_Sun, 11 Jul 93 15:41:14 PST.msg < prev    next >
Text File  |  1993-08-31  |  4KB  |  78 lines

  1. Received: by bkhouse.cts.com (V1.16/Amiga)
  2.     id AA00000; Sun, 11 Jul 93 15:41:14 PST
  3. Received: from mars.let.uva.nl by crash.cts.com with smtp
  4.     (Smail3.1.28.1 #15) id m0oF9uK-00000DC; Sun, 11 Jul 93 15:30 PDT
  5. Received: by mars.let.uva.nl id AA01686
  6.   (5.65c/IDA-1.4.4 for amigae@bkhouse.cts.com); Mon, 12 Jul 1993 00:33:36 +0200
  7. Return-Path: <wouter@mars.let.uva.nl>
  8. Date: Mon, 12 Jul 1993 00:33:36 +0200
  9. Message-Id: <199307112233.AA01686@mars.let.uva.nl>
  10. X-Organisation: Department of Computational Linguistics,
  11.                 University of Amsterdam
  12.                 Spuistraat 134, 1012 VB Amsterdam, The Netherlands
  13. From: Wouter van Oortmerssen <wouter@mars.let.uva.nl>
  14. To: amigae@bkhouse.cts.com
  15. Subject: comparing E and C code
  16.  
  17. >> Okay. Here's the slow E port of boyerm.c - It's been stripped of the
  18. >> non-essential routines and has a few features hard-coded (laziness, I know :)
  19. >> Basically it searches my Aminet catalogue for Toolmanager2.0 (there's only
  20. >> one entry) using Boyer-Moore string search. I compiled practically the same
  21. >> code in C format (of coz) using SAS/C v6.3 and the results were something
  22. >> like 30secs for SAS/C and 60 secs for E.
  23.  
  24. like I said before: don't judge too fast. here's the result of profiling:
  25.  
  26. Execution profile for: boyer
  27.  
  28.                             calls     aver.     %         min       max
  29.  
  30. Raise                           1     0.027     0.027     0.027     0.027
  31. CtrlC                          62     0.004     0.226     0.004     0.004
  32. StrLen                       2664     0.004    10.477     0.003     0.032
  33. StrCopy                         1     0.004     0.004     0.004     0.004
  34. CleanUp                         0     0.000     0.000     0.000     0.000
  35. WriteF                          1     0.112     0.112     0.112     0.112
  36. fgets                        2664     0.025    65.919     0.005     0.185
  37. main                            1    12.840    12.840    12.840    12.840
  38. boyer                        2663     0.004    10.032     0.003     0.030
  39. min                            27     0.003     0.081     0.003     0.003
  40. max                            48     0.003     0.144     0.003     0.003
  41.  
  42. the (%) are most interesting: it seems like 66% is consumed by the fgets
  43. call, and only 10% by the actual boyer() calculation.
  44. I could probably optimize boyer() somewhat, but that seems to bring us
  45. nowhere in terms of speed.
  46.  
  47. SAS must have a fairly better implementation of fgets() than Commodore,
  48. otherwise this wouldn't have been possible. one way to
  49. speed up the E version would be to get rid of fgets, and Read() the
  50. whole file at once.
  51.  
  52. >> Any help much appreciated.
  53. >> 
  54. >> Son Le
  55. >> 
  56. >> PS. Another idea would be to include a set of standard functions with E for
  57. >> basic functions like atoi, islower, etc. And also about the .o files, how
  58.                         ^^^^  ^^^^^^^
  59.                    Try Val(). good idea, I probably will.
  60.  
  61. since 2.5 can have basically anything in modules, I plan to
  62. supply some of functions from the C world and from amiga.lib
  63.  
  64. >> about mimicking c.o with e.o?
  65.  
  66. that wouldn't help those C XREFs either. the problem is, wether you
  67. call it c.o or e.o, that when both C and E code have to live together in
  68. one executable, both demand their own startup-code.
  69.  
  70. I'm still searching for ways though. I have already succesfully linked
  71. a trivial C function to an E program, with o2m.
  72.  
  73. Wouter
  74.  
  75.    ____  Wouter van Oortmerssen, Wouter@alf.let.uva.nl
  76.   / __/  "Einen Satz verstehen, heisst, wissen was der Fall ist,
  77.  / __/    wenn er wahr ist" - Wittgenstein
  78. /___/  ->subscribe to the E mailing list: amigae-request@bkhouse.cts.com<-